package ca.venasse.pinventory.inventory.event;

import org.axonframework.domain.DomainEvent;

import ca.venasse.pinventory.common.Money;
import ca.venasse.pinventory.common.Quantity;
import ca.venasse.pinventory.inventory.common.PartIdentifier;
import ca.venasse.pinventory.inventory.common.PartUrl;
import ca.venasse.pinventory.inventory.common.PurchaseDate;
import ca.venasse.pinventory.inventory.common.SupplierName;

public class PartPurchased extends DomainEvent {

	private static final long serialVersionUID = 1L;

	private final PartIdentifier partIdentifier;
	private final PartUrl partUrl;
	private final PurchaseDate purchaseDate;
	private final Quantity quantity;
	private final SupplierName supplierName;

	private final Money unitCost;

	public PartPurchased(PartIdentifier partIdentifier, SupplierName supplierName, PartUrl partUrl,
			PurchaseDate purchaseDate, Quantity quantity, Money unitCost) {
		this.partIdentifier = partIdentifier;
		this.supplierName = supplierName;
		this.partUrl = partUrl;
		this.purchaseDate = purchaseDate;
		this.quantity = quantity;
		this.unitCost = unitCost;
	}

	public PartIdentifier getPartIdentifier() {
		return this.partIdentifier;
	}

	public PartUrl getPartUrl() {
		return this.partUrl;
	}

	public PurchaseDate getPurchaseDate() {
		return this.purchaseDate;
	}

	public Quantity getQuantity() {
		return this.quantity;
	}

	public SupplierName getSupplierName() {
		return this.supplierName;
	}

	public Money getUnitCost() {
		return this.unitCost;
	}

}
